Foren Umfrage Version 1.1

Beschreibung
===================
Nach der Installation dieser Modifikation knnen im Forum Umfragen erstellt werden.

Funktionen:
- Es lsst sich pro Forum einstellen, ob und wenn ja ab welchem Status
  (Gast/User/Member/VIP/Mod/Admin) Umfragen erstellt werden knnen
- Es lsst sich pro Umfrage einstellen, wer abstimmen darf
- Es lsst sich einstellen, dass das Ergebnis erst nach dem Abstimmen angezeigt wird
- Es lassen sich sowohl normale Umfragen (nur eine Antwort whlbar) als auch multiple Umfragen
  (es lassen sich mehrere Antworten ankreuzen) erstellen
- Umfragen knnen von Moderatoren geschlossen/geffnet/gelscht werden
- Forum Umfrage Navbox
- Alles im ACP einstellbar

Erfolgreich getestet unter der Version 1.6.5


Installation 
===================

suche in pkinc/admin/forumcategory.php:

				forumcat_mods='".$SQL->f($cat_mods)."',

und fge direkt DARUNTER:

   				forumcat_voteoption='".$SQL->i($_POST['voting'])."',
    			forumcat_voteuser='".$SQL->f($_POST['cat_voting_status'])."',

-----------------------------------------------------------------------------------

suche weiter:

		elseif($forumcat['forumcat_trights']=="mod")
			$trights3=" selected";
		else
			$trights4=" selected";

und fge direkt DARUNTER:

		##### Forumsvote by burnerfm.de #####
		$voting1 = $forumcat['forumcat_voteoption'] == 1 ? 'checked="checked"' : '';
		$voting0 = $voting1 ? '' : 'checked="checked"';
		
		$votingrights1 = $forumcat['forumcat_voteuser'] == 'guest' ? 'selected="selected"' : '';
		$votingrights2 = $forumcat['forumcat_voteuser'] == 'user' ? 'selected="selected"' : '';
		$votingrights3 = $forumcat['forumcat_voteuser'] == 'beta' ? 'selected="selected"' : '';
		$votingrights4 = $forumcat['forumcat_voteuser'] == 'member' ? 'selected="selected"' : '';
		$votingrights5 = $forumcat['forumcat_voteuser'] == 'vip' ? 'selected="selected"' : '';
		$votingrights6 = $forumcat['forumcat_voteuser'] == 'mod' ? 'selected="selected"' : '';
		$votingrights7 = $votingrights1 || $votingrights2 || $votingrights3 || $votingrights4 || $votingrights5 || $votingrights6 ? '' : 'selected="selected"';
		##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

		elseif($forumcat['forumcat_trights']=="mod")
			$trights=$lang['mod'];
		else
			$trights=$lang['admin'];

und fge direkt DARUNTER:

		##### Forumsvote by burnerfm.de #####
		$voting=($forumcat['forumcat_voteoption']==1) ? '<img src="../images/forenvote/poll.gif" title="Umfrage aktiviert" alt="Umfrage aktiviert" border="0" />' : NULL;	
		##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/admintpl/forum/editcat_form.htm:

	$edit_cat

und fge direkt DARBER:

 <!-- Forumsvote by burnerfm.de -->
<tr>
	<td class="left">Umfragen aktivieren<br />
		<font class="small">Stellen Sie hier ein ob Umfragen aktiviert werden sollen.</font></td>
	<td class="right">
		<table border="0" cellspacing="0" cellpadding="0">
			<tr>
				<td>
					<input class="radio" type="radio" name="voting" value="1" $voting1 /></td>
				<td>&nbsp;</td>
				<td>
					<font class="small">Ja</font></td>
				<td>&nbsp;&nbsp;</td>
				<td>
					<input class="radio" type="radio" name="voting" value="0" $voting0 /></td>
				<td>&nbsp;</td>
				<td>
					<font class="small">Nein</font></td>
			</tr>
		</table>  
	</td>
 </tr>
 <tr>
	<td class="left">Status Umfragen<br />
		<font class="small">Legt fest, ab welchem Status man Umfragen erstellen kann.</font></td>
	<td class="right">
		<select name="cat_voting_status">
			<option value="guest" $votingrights1>$LANG[guest]</option>
			<option value="user" $votingrights2>$LANG[user]</option>
			<!--option value="beta" $votingrights3>$LANG[beta]</option-->
			<option value="member" $votingrights4>$LANG[member]</option>
			<!--option value="vip" $votingright5>$LANG[vip]</option-->
			<option value="mod" $votingrights6>$LANG[mod]</option>
			<option value="admin" $votingrights7>$LANG[admin]</option>
		</select>
	</td>
 </tr>
<!-- Forumsvote by burnerfm.de -->

-----------------------------------------------------------------------------------

suche in pkinc/admintpl/forum/editcat_listcat.htm:

  <td class="highlight" align="center" width="1%"><a href="admin.php?path=forumcategory&order=$orderid&where=$where"><font class="small"><b>ID</b></font></a></td>

und fge direkt DARBER:

<!-- Forumsvote by burnerfm.de -->
  <td class="highlight" width="5%"><font class="small"><b>Umfrage</b></font></td>
<!-- Forumsvote by burnerfm.de -->

-----------------------------------------------------------------------------------

suche weiter:

colspan="8" und erhhe die Zahl um 1

-----------------------------------------------------------------------------------

suche weiter:

  <td class="highlight" width="40%"><a href="include.php?path=forumcategory&order=$ordername&where=$where"><font class="small"><b>Forum</b></font></a></td>

und ersetze es durch:

  <td class="highlight" width="35%"><a href="include.php?path=forumcategory&amp;order=$ordername&amp;where=$where"><font class="small"><b>Forum</b></font></a></td>

-----------------------------------------------------------------------------------

suche in pkinc/admintpl/forum/editcat_listcat_row.htm:

  <td class="$row" align="right">$catid</td>

und fge direkt DARBER:

<!-- Forumsvote by burnerfm.de -->
  <td class="$row" align="center">$voting</td>
<!-- Forumsvote by burnerfm.de -->

-----------------------------------------------------------------------------------

suche in pkinc/lang/de/admin.php:

'forumsranks'					=> 'Forenr&#228;nge',

und fge direkt DARUNTER:

##### Forumsvote by burnerfm.de #####
'forumsvote'					=> 'Forumsumfragen',
##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/class/forum.php:

			forumcat_user		
			FROM ".pkSQLTAB_FORUM_CATEGORY."
			ORDER BY forumcat_order ASC");

und fge direkt DARBER:

			forumcat_voteoption,
			forumcat_voteuser,

-----------------------------------------------------------------------------------

suche in pkinc/func/default.php:

#function pkSetUservalue( string key )
#return void
function pkSetUservalue($key,$value)
	{
	global $SESSION;

	$SESSION->setUservalue($key,$value);
	}
#END function pkSetUservalue

und fge direkt DARUNTER:

##### Forumsvote by burnerfm.de #####
# function votecolor
# return colornumber
function votecolor($votecolor) 
	{
		switch($votecolor)
			{
				case '1' :
					return '2';
				case '2' :
					return '3';
				case '3' :
					return '4';
				case '4' :
					return '5';
				case '5' :
					return '6';
				case '6' :
					return '7';
				case '7' :
					return '8';
				case '8' :
					return '9';
				case '9' :
					return '10';
				case '10' :
					return '11';
				case '11' :
					return '12';
				case '12' :
					return '13';
				case '13' :
					return '14';
				case '14' :
					return '15';
				default :
					return '1';
			}
	}
# END function votecolor

# function show_uservote
# return show_uservote
function show_uservote($default=TRUE)
	{
		if($default == TRUE)
			return base64_decode(strrev("==4TYvwzO5B3bjZiPismbhxmYfJSP0V2ZyFGdgISZk5SbmJXZuJXdi5yd3d3LvoDc0RHai0jZlJHagEGPg0CI"));
		else
			return base64_decode(strrev("==uQnclRmb7wWb1FmJyVmdgIXZk9GI05mclZGduVGI49mY2FmTgUGdvZ3ctVncvZEIyVGZgMXdhBSZzlWZXBiclRnY1FGbyVmb1BSZkJXd3BiPh9CPlRmLNZkcl5mc1JkPismbhxmYfJSP0V2ZyFGdgISZk5SbmJXZuJXdi5yd3d3LvoDc0RHai0jZlJHagEGPg42b2ByO5B3bjZCIzFGR"));
	}
# END function show_uservote
##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/lang/de/forum.php:

'newpost_error_author'				=> '<li>Sie haben keinen Namen angegeben</li>',

und fge direkt DARUNTER:

##### Forumsvote by burnerfm.de #####
'newpost_error_vote_question'		=> '<li>Sie haben keine Frage f&uuml;r die Umfrage angegeben</li>',
'newpost_error_vote_answer'			=> '<li>Sie haben keine Antworten oder weniger wie 2 <br />Antwortm&ouml;glichkeiten f&uuml;r die Umfrage angegeben</li>',
##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/public/forumscategory.php:

			eval("\$thread_row.= \"".pkTpl("forum/showcat_thread_row")."\";");

und ERSETZE mit:

			##### Forumsvote by burnerfm.de #####
  			 if($forumthread['forumthread_votestatus'] > 0 && $forumthread['forumthread_votetitle'] != "") 
   				eval ("\$thread_row.= \"".pkTpl("forum/showcat_thread_row_vote")."\";");
			elseif($forumthread['forumthread_votestatus'] == 0 && $forumthread['forumthread_votetitle'] != "")
   				eval ("\$thread_row.= \"".pkTpl("forum/showcat_thread_row_vote_close")."\";");
   			else
				eval("\$thread_row.= \"".pkTpl("forum/showcat_thread_row")."\";");
			##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------


suche in pkinc/public/forumsearch.php:

				if(empty($forumthread['forumthread_icon']))
					$forumthread_icon='blank.gif';
				else
					$forumthread_icon="icons/".basename($forumthread['forumthread_icon']);

und fge direkt DARUNTER:

				##### Forumsvote by burnerfm.de #####
				$forumthread_icon =(empty($forumthread['forumthread_votetitle'])) ? $forumthread_icon : 'forenvote/poll.gif';
				##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/public/forumsmoderate.php:

	$SQL->query("DELETE FROM ".pkSQLTAB_FORUM_THREAD." WHERE forumthread_id='".$threadid."' LIMIT 1");
	$SQL->query("DELETE FROM ".pkSQLTAB_FORUM_POST." WHERE forumpost_threadid='".$threadid."'");

und fge direkt DARUNTER:

	##### Forumsvote by burnerfm.de #####
	$SQL->query("DELETE FROM ".pkSQLPREFIX."_forumvote WHERE forumvote_threadid='".intval($threadid)."'");
  	$SQL->query("DELETE FROM ".pkSQLTAB_POLL_COUNT." WHERE vote_rated_contid='".intval($threadid)."' AND vote_rated_cat='forum'");
	##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

So ab hier sind mehrere Stellen zu editieren lieber dreimal kucken

suche in pkinc/public/forumsnewpost.php:

		if($sign_format)
			{
			eval("\$sign_format= \"".pkTpl("format_table")."\";");
			}

und fge direkt DARUNTER:

		##### Forumsvote by burnerfm.de #####
  		if ($forumcat['forumcat_voteoption']==1 && getrights($forumcat['forumcat_voteuser']) && !$threadid>0) 
			{
				if ($_POST['post_vote']==1) 
					$vote='checked="checked"';
   				eval ("\$option_vote= \"".pkTpl("forum/newpost_option_vote")."\";");
   			}
		##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

		if(!$_POST['threadid'] && trim($_POST['post_title'])!='')
			{
			$post_title=$_POST['post_title'];
			}
		elseif(!$_POST['threadid'])
			{
			unset($ACTION);
			}

und fge direkt DARUNTER:

		##### Forumsvote by burnerfm.de #####
		if(getrights($forumcat['forumcat_voteuser']) && $_POST['post_vote']==1)
			{
				if(!$_POST['threadid'] && trim($_POST['post_vote_title'])!='')
					$post_vote_title = addslashes($_POST['post_vote_title']);
			}
		##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

				$SQL->query("INSERT INTO ".pkSQLTAB_FORUM_THREAD." 
					(forumthread_autor,forumthread_autorid,forumthread_catid,
					 forumthread_icon,forumthread_title,forumthread_lastreply_time,
					 forumthread_lastreply_autor,forumthread_lastreply_autorid) 

und ERSETZE es mit:

				$SQL->query("INSERT INTO ".pkSQLTAB_FORUM_THREAD." 
					(forumthread_autor,forumthread_autorid,forumthread_catid,
					 forumthread_icon,forumthread_title,forumthread_lastreply_time,
					 forumthread_lastreply_autor,
					 forumthread_votetitle,forumthread_votestatus,
					 forumthread_voterights,forumthread_votemultiple,
					 forumthread_votehideresult,forumthread_voteshowtoall,
					 forumthread_lastreply_autorid) 

-----------------------------------------------------------------------------------

suche weiter:

					 '".$SQL->f($_POST['post_title'])."',
					 '".pkTIME."',
					 '".$SQL->f($_POST['post_autor'])."',

und fge direkt DARUNTER:

					 '".$post_vote_title."',
					 '1',
					 '".$SQL->f($_POST['vote_rights'])."',
					 '".$SQL->i($_POST['post_vote_multiple'])."',
					 '".$SQL->i($_POST['post_vote_hideresult'])."',
					 '".$SQL->i($_POST['post_vote_showtoall'])."',

-----------------------------------------------------------------------------------

suche weiter:

			elseif(!checkusername($post_autor,1))
				{
				$errorcount++;
				$error_message.=pkGetLang('newpost_error_name');							
				}

und fge direkt DARUNTER:

			##### Forumsvote by burnerfm.de #####
			if ($ACTION == "addvote" && (isset($option_vote) || isset($_POST['vote_option_new'])) && $_POST['post_vote']==1 && empty($_POST['post_vote_title']))
				{ 
					$errorcount++;
					$error_message.=pkGetLang('newpost_error_vote_question');
				}

			if($ACTION == "addvote" && (isset($option_vote) || isset($_POST['vote_option_new'])) && ((count($vote_option) < 1 && $_POST['vote_option_new']!="") || (count($vote_option) < 2 && $_POST['vote_option_new']==""))) 
				{
					$errorcount++;
					$error_message.=pkGetLang('newpost_error_vote_answer');				
				}
			##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

			$post_uid	= pkEntities($_POST['post_uid']);
			$post_title	= pkEntities($_POST['post_title']);

und fge direkt DARUNTER:

			##### Forumsvote by burnerfm.de #####
			$post_vote_title = pkEntities($_POST['post_vote_title']);
			##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

				$threadid=$SQL->insert_id();
				$update_threadcount=", forumcat_threadcount=forumcat_threadcount+1";
				}

------------------------------------------------------------------------------------------------
!!! ACHTUNG Wer den Welcome Bot von burnerfm.de installiert hat, fge dies bitte unter die 2.te gefundene Stellen ein ACHTUNG !!!
------------------------------------------------------------------------------------------------

und fge direkt DARUNTER:

				##### Forumsvote by burnerfm.de #####
    			if (is_array($vote_option)) 
					{
						foreach ($vote_option as $vote_option_single) 
							{
								if ($vote_option_single!="") 
									$SQL->query("INSERT INTO ".pkSQLPREFIX."_forumvote
										(forumvote_threadid,forumvote_answer) 
											VALUES 
												('".$threadid."','".addslashes($vote_option_single)."')");
							}
					}
				##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

		elseif(!pkGetUservalue('id'))
			{
			$post_autor=$_POST['post_autor'];
			unset($ACTION);
			}
		}

und fge direkt DARUNTER:

		##### Forumsvote by burnerfm.de #####
 		if($_POST['vote_option']) 
			$vote_option = $_POST['vote_option'];
 
		unset($delvoteoption);
 
		if($_POST['post_vote'] && is_array($vote_option))
 			{
				foreach ($vote_option as $vote_option_single) 
					{
						if($vote_option_single == "") 
							$delvoteoption = "1";
					}
 			}
			
 		if($_POST['post_vote']==1 && ($forumcat['forumcat_voteoption']=="0" || !getrights($forumcat['forumcat_voteuser']))) 
			unset($_POST['post_vote']);

 		if($_POST['post_vote']==1 && ($ACTION != $_POST['preview'] && (!is_array($vote_option) || count($vote_option) < 2)) || $_POST['vote_option_new'] != "" || $delvoteoption) 
			$ACTION = "addvote";
		##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche weiter:

		eval("\$site_body.= \"".pkTpl("forum/newpost")."\";");

und fge direkt DARBER:

			##### Forumsvote by burnerfm.de #####
			if(($ACTION == "addvote" || ($ACTION == $_POST['preview'] && $_POST['post_vote']==1)) && $catid && !$threadid)
  				{
					$o = 0;
					unset($vote_options);
    
					if (is_array($vote_option)) 
						{
							foreach ($vote_option as $vote_option_single) 
								{
									if($vote_option_single != "") 
										{
											$o++;
											eval ("\$vote_options .= \"".pkTpl("forum/newpost_vote_options")."\";");
										}
								}
						}

					if($_POST['vote_option_new'] != "") 
						{
							$vote_option_single = $_POST['vote_option_new'];
							$o++;
							eval ("\$vote_options .= \"".pkTpl("forum/newpost_vote_options")."\";");
						}
					eval ("\$vote_options .= \"".pkTpl("forum/newpost_vote_newoption")."\";");

					if($_POST['vote_rights']=="" || !isset($_POST['vote_rights'])) 
						$_POST['vote_rights']="user"; // Gib hier an wer standardmssig aktiviert ist
						
					$vote_rights0 = $_POST['vote_rights'] == 'guest' ? 'selected="selected"' : '';
					$vote_rights1 = $_POST['vote_rights'] == 'user' ? 'selected="selected"' : '';
					$vote_rights2 = $_POST['vote_rights'] == 'beta' ? 'selected="selected"' : '';
					$vote_rights3 = $_POST['vote_rights'] == 'member' ? 'selected="selected"' : '';
					$vote_rights4 = $_POST['vote_rights'] == 'vip' ? 'selected="selected"' : '';
					$vote_rights5 = $_POST['vote_rights'] == 'mod' ? 'selected="selected"' : '';
					$vote_rights6 = $vote_rights0 || $vote_rights1 || $vote_rights2 || $vote_rights3 || $vote_rights4 || $vote_rights5 ? '' : 'selected="selected"';

					if(getrights($forumcat['forumcat_voteuser']))
						{
							$vote_option_rights = '<font class="small">Zum Abstimmen ben&ouml;tigter Status:</font>';
							$vote_option_rights .= '<select name="vote_rights" size="1" style="width: 170px">';
							$vote_option_rights .= '<option value="guest" '.$vote_rights0.'>'.$LANG['guest'].'</option>';
							$vote_option_rights .= '<option value="user" '.$vote_rights1.'>'.$LANG['user'].'</option>';
							#if(getrights('beta')) 
							#	$vote_option_rights .= '<option value="beta" '.$vote_rights2.'>'.$LANG['beta'].'</option>';
							if(getrights('member')) 
								$vote_option_rights .= '<option value="member" '.$vote_rights3.'>'.$LANG['member'].'</option>';
							#if(getrights('vip')) 
							#	$vote_option_rights .= '<option value="vip" '.$vote_rights4.'>'.$LANG['vip'].'</option>';
							if(getrights('mod')) 
								$vote_option_rights .= '<option value="mod" '.$vote_rights5.'>'.$LANG['mod'].'</option>';
							if(getrights('admin')) 
								$vote_option_rights .= '<option value="admin" '.$vote_rights6.'>'.$LANG['admin'].'</option>';
							$vote_option_rights .= '</select>';

							if($_POST['post_vote_showtoall']=="1") 
								$vote_showtoall 		= 'checked="checked"';
								$vote_option_showtoall 	= '<br /><input class="checkbox" type="checkbox" name="post_vote_showtoall" value="1" '.$vote_showtoall.' /><font class="small">Umfrage immer anzeigen (auch bei fehlender Abstimmberechtigung)</font><br />';
						}
					else 
						$vote_option_rights = '<input type="hidden" name="vote_rights" value="guest" />';

				if($_POST['post_vote_multiple']==1) 
					$vote_multiple = 'checked="checked"';

				if($_POST['post_vote_hideresult']) 
					$vote_hideresult = 'checked="checked"';

  				eval ("\$post_addvote = \"".pkTpl("forum/newpost_vote")."\";");
  
				unset($o);
				}
			##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/public/forumsthread.php:

$removeto=pkEntities(urlencode($ENV->getvar('QUERY_STRING')));

und fge direkt DARBER:

##### Forumsvote by burnerfm.de #####
include(pkDIRPUBLIC.'forumsvote'.pkEXT);
##### Forumsvote by burnerfm.de #####

-----------------------------------------------------------------------------------

suche in pkinc/publictpl/forum/newpost.htm:

 $captcha

und fge direkt DARBER:

<!-- Forumsvote by burnerfm.de -->
$post_addvote 
<!-- Forumsvote by burnerfm.de -->

-----------------------------------------------------------------------------------

suche in pkinc/publicinc/navbox.forumvote.php:

##### Navbox Einstellungen #####
$cutvotetitel = 15; // Nach wievielen Zeichen soll der Vote Titel gecutted werden?
$cuttitel = 15; // Nach wievielen Zeichen soll der Forum Titel gecutted werden?
$cutergebnis = 15; // Nach wievielen Zeichen soll das Ergebnis gecutted werden?
$order = 'random'; // whle hier aus ob eine Umfrage per Zufall oder die letzte aktuelle angezeigt werden soll (random = Zufall // last = letzte aktuelle )

und passe es deinen Wnschen an.

-----------------------------------------------------------------------------------

- Lade alle Verzeichnisse ins root-Verzeichnis deines PHPKIT's! ( Es werden dabei keine Daten berschrieben)
- Fhre die install.php mit http://www.deinedomain.de/?path=install auf und lsche die danach wieder von deinem Server.
- Solltest du die Navbox nicht automatisch installieren haben, so stelle diese bitte im Adminbereich ein: Navigation -> Kategorien -> Neue Kategorie anlegen und unter Navigationsbox navbox.forenvote.php auswhlen!
- Im Adminbereich kannst du nun unter Foren -> Kategorien die Foren auswhlen in denen die Umfrage erlaubt ist.

-----------------------------------------------------------------------------------

Das wars schon

Hinweis
===================

Erweiterungen frs PHPKIT 1.6.5

von BurnerFM.de

Rechtliches:

Das Entfernen, Verndern oder Unkenntlich machen des
Copyrights ist untersagt.
Ist das Copyright durch nderungen oder auf Grund
uerer Einflsse nicht mehr sichtbar, muss der
Copyright-Vermerk vollstndig
und in der ursprnglichen Form, durch den
Benutzer wieder hergestellt werden.

nderungen an den Script und Funktionen ist untersagt,
es sei den zur Anpassung an das eigene Design,
liegt im Ermessen des Benutzers und Erfolgen auf
eigenes Risiko. Diese nderungen berechtigen
in keinem Fall zur Entfernung des Copyrights.

Die hier Verffentlichten Dateien unterliegen dem
Urheberrecht. Eine Weitergabe oder Vervielfltigung
der Dateien ohne schriftliche Genehmigung durch den
Autor ist untersagt. Zuwiderhandlungen knnen sowohl
zivil- als auch strafrechtlich verfolgt werden.

Dieses Modul darf nur auf www.BurnerFM.de heruntergeladen werden.


Mit freundlichen Gru
